// 虚拟DOM的类，构建实例对象，用来描述DOM
export class Element{
    constructor(type,props,children){
        this.type=type;
        this.props=props;
        this.children=children;
    }
}
// 创建虚拟DOM ，以后可以代替真实DOM，提高网页性能
export function createElement(type,props,children){
    // return 1;
    return new Element(type,props,children)
}

// reactDOM.render
// react 16 之前 组件 class Todos extends React.COmponent{
//     render(){
//         return (
//             <ul>

//             </ul>
//         )
//     }
// }
// 将虚拟dom节点对象转变为真实dom

export function render(domObj){
    // Element -> DOM
    // console.log(domObj);
    let el=document.createElement(domObj.type);
    for(let key in domObj.props){
        el.setAttribute(key,domObj.props[key]);
    }
    // JSX -> VD 正则
    domObj.children.forEach(child => {
        child=(child instanceof Element)?render(child):document.createTextNode(child);
        el.appendChild(child);
    });
    return el;
}